package com.yuw.hw;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.jupiter.api.Test;

public class TeatDriver {
	/**
	 * 使用集合来存储该二维表格的内容，并且进行遍历显示，和表格内容一样
	 * 
	 */
	@Test
	public void test01() {
		//初始化数组
		List<Map<String,Object>>lst=init();
		//遍历打印数组
		if(lst!=null&&lst.size()>0) {
			
		
		//需要使用两层循环打印/
		//从lst中取出map对象
		//迭代遍历map
		Set<String>setKeys = lst.get(0).keySet();
		//打印表头
		for(String eachKey:setKeys) {
			System.out.print("   "+eachKey);
		}
		for(Map<String,Object> map:lst) {
			
			
			//换行
			System.out.println();
			//迭代器遍历
			Iterator<String> keys =setKeys.iterator();
			while(keys.hasNext()) {
				System.out.print("  "+map.get(keys.next()));
			}
			
		}
		}
	}
	@Test
	public void test02() {
		//初始化数组
		List<Map<String,Object>>lst=init();
		//遍历打印数组
		int only =1;
		//需要使用两层循环打印/
		//从lst中取出map对象
		//迭代遍历map
		
			for(Map<String,Object> map:lst) {
		Set<String>setKeys = lst.get(0).keySet();
			
		
		//打印表头
			if(only-->0) {
		for(String eachKey:setKeys) {
			System.out.print("   "+eachKey);
		}
			}
		
			
			
			//换行
			System.out.println();
			//迭代器遍历
			Iterator<String> keys =setKeys.iterator();
			while(keys.hasNext()) {
				System.out.print("  "+map.get(keys.next()));
			}
			
		}
		}

	/**
	 * 
	 * 初始化数据，使用List+Map形式保存一个二维表格的数据
	 * @return
	 */
	private List<Map<String,Object>>init(){
		//初始化数据
		List<Map<String,Object>> lst =new ArrayList<>();
		//行数
		int count = 3;
		for(int i =0;i<count;i++) {
			//创建一个Map用于保存一行数据中的键值对
			//注意为了保证有序，用LinkedHashMap
			Map<String,Object> map =new LinkedHashMap<>();
			map.put("num", i+1);
			map.put("name","张"+( i+1));
			map.put("sex", "女");
			map.put("age", Math.random()*10+20);
			map.put("score",  Math.random()*30+70);
			
			//将map存入list中list中一个map表示一行数据
			lst.add(map);
		}
		return lst;
		
	}

}
